This invention relates in general to networked computer systems, and in particular to methods and systems for associating data from one or more sources that are external to a host operating environment with related data from one or more other sources.
In a typical modern computing environment, client computers have access through a network to a server computer or server computers which provide the users of the client computers with an operating environment, or host operating environment, through which the users can utilize one or more applications, including, for example, database applications, communications packages, graphics applications management tools, security-related applications, word processing applications, spreadsheet applications, intranet and/or Internet applications, various messaging applications, etc. The term “host operating environment” is here used broadly to include the computing environment provided by a server computer or server computers to one or more client computers, allowing one or more client computers access to and interface with various software, telecommunications methods, etc. provided by or facilitated by the server computer or server computers.
Data is of course frequently utilized by being accessed and manipulated by client computers through the host operating environment. Data storage is typically provided such that the data can be accessed and utilized by the applications of the host operating environment, e.g., integrated with the host environment, without the need to use emulator software or other programs, such as linking programs or utilities, to provide a translation or link between the host operating system and the data source. Data accessible by a host operating system in the foregoing way is herein termed “native” to the host operating system.
In addition to native data, it is often desired to access or manipulate data from one or more non-native, e.g., external sources having external data, either separately from or together with native data. Such external data is generally not integrated for use in the host operating environment. A group of data sources, each of which is not integrated for use in one or more applications for which at least one of the other data sources is integrated for use with, are referred to herein as a heterogeneous group.
Data from a first external data table may be different in many respects than data from a native data table or tables, or different than data from another external data table or tables from a different external source or sources, including being formatted differently, stored differently, organized differently, coded differently, represented differently, etc. Nonetheless, data from a first external data table may relate to data from another external data table from a different external data source, and/or to data from one or more native data tables. For example, the information represented by the data in the first external data table may relate logically to the information represented in another external table in a different external data source, and/or to data from one or more native data tables. For example, each or several of the aforementioned tables may contain information about employees at a certain company; one table, table X, may contain the social security number of each of several employees of a Company A, another table, table Y, may contain the current addresses of several employees of Company A, the social security numbers of some of whom are contained in Table A. Even though related data may be stored in various sources including external sources, it is useful to be able to organize or assemble related data coherently, in spite of the disparate sources. For example, it is useful to be able to access and/or manipulate related data from a host operating environment, even though the related data is stored in disparate sources, including external sources. Such access and/or manipulation may be made possible, more convenient, and/or more efficient if the related data can be assembled in a coherent grouping.
Therefore, there is a need for methods and systems for identifying, from within a host operating environment, related data from two or more data sources, one or more of which data sources is an external data source to the host operating environment, and for assembling a data group derived from the related data.